package cn.stylefeng.guns.modular.ums.model.params;

import lombok.Data;
import cn.stylefeng.roses.kernel.model.validator.BaseValidatingParam;
import org.quartz.SimpleTrigger;

import java.util.Date;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * <p>
 * 聊天记录表
 * </p>
 *
 * @author yzb
 * @since 2022-05-17
 */
@Data
public class ChatHistoryParam implements Serializable, BaseValidatingParam {

    private static final long serialVersionUID = 1L;

    private int memberId;//查询用户的聊天记录
    private String keyword;

    //接收第三方
    private String payload;
    private long timestamp;
    /**
     * 消息id
     */
    private Integer id;

    /**
     * 区域
     */
    private String restHost;

    /**
     * common key
     */
    private String appKey;

    /**
     * 私聊A方
     */
    private String userAId;

    /**
     * 私聊B方
     */
    private String userBId;

    /**
     * 群聊ID
     */
    private String groupId;

    /**
     * 岗位ID
     */
    private String positionId;

    /**
     * 类型：text、audio、image、video
     */
    private String type;

    /**
     * 消息ID
     */
    private String messageId;

    /**
     * 发送者ID
     */
    private String senderId;

    /**
     * 接收者ID
     */
    private String receiverId;

    /**
     * 发送时间
     */
    private Date sendTime;

    /**
     * 文本内容
     */
    private String text;

    /**
     * 名称，针对非文本
     */
    private String name;

    /**
     * 内容类型：audio/m4a,image/jpeg,video/mp4等
     */
    private String contentType;

    /**
     * url地址，图片或者视频地址
     */
    private String url;

    //封面地址
    private String coverUrl;

    /**
     * 时长，视频、音频
     */
    private Double duration;

    /**
     * 宽度
     */
    private Integer width;

    /**
     * 高度
     */
    private Integer height;

    /**
     * 大小
     */
    private Double size;

    /**
     * 添加时间
     */
    private Date createTime;

    /**
     * 修改时间
     */
    private Date updateTime;

    /**
     * 是否删除
     */
    private Integer ifDel;

    /**
     * 删除时间
     */
    private Date deleteTime;

    @Override
    public String checkParam() {
        return null;
    }


    @Data
    public class Payload{
        /**
         * 文本内容
         */
        private String text;

        /**
         * 名称，针对非文本
         */
        private String name;

        /**
         * url地址，图片或者视频地址
         */
        private String url;

        /**
         * 时长，视频、音频
         */
        private Double duration;

        /**
         * 宽度
         */
        private Integer width;

        /**
         * 高度
         */
        private Integer height;

        /**
         * 大小
         */
        private Double size;

        //视频
        private Payload video;
        private Payload thumbnail;
    }

}
